Código Limpo

Filosofia e Cultura para o Time de Desenvolvimento

Por José Roniérison e Vitor Nogueira

O que é um código limpo?

Eu poderia listar todas as qualidades que eu espero de um código limpo, mas uma sobrepõe todas as outras qualidades as outras. Um código limpo parece sempre ter sido escrito por alguém que se importava. Não há nada óbvio que você possa fazer para melhorá-lo (o código). Todos essas coisas óbvias foram pensadas pelo autor e se você tentar imaginar melhorias, você chegará exatamente onde estava [..]

Michael Feathers

Um código limpo pode ser lido, melhorado e desenvolvido por outra pessoa que não seja o seu autor. Ele tem testes unitários e bons nomes. Ele tem uma forma em vez de muitas para fazer uma coisa. Tem poucas dependências, as quais estão explicitamente definidas e provê um API mínima de boa qualidade. [..]

Dave Thomas

Todos testes rodam, não contém duplicações, todas ideias do design do sistema estão bem claras, minimiza o número de entidades como classes, métodos, funções e assim por diante.

Ron Jeffries

Estamos aqui para criar um código limpo e elegante ou para criar produtos?

  • Duck Tape Developer
  • Trade-off

Um código sujo pode fazer uma empresa falir?

  • Ariana5
  • Custos para implementar novas coisas/manter

O que um código sujo pode causar?

  • Mais difícil de solucionar um bug
  • Aumenta rigidez do código
  • Aumenta o tempo de desenvolvimento
  • Aumenta custos com infra e devel

O código tende ao caos

Quando ninguém organiza o código, cada correção/feature aumenta a entropia do código

Temos que diminuir a desordem no código, não deixá-la aumentar

Como manter o código limpo

  • Bons nomes
  • As implementações devem estar no seu devido lugar
  • Limpeza, organização
  • Conformidade com o time
  • Siga as regras e dialogue

Cultura de desenvolvimento

Item 1.1

O guia dos valores fomentados neste documento tem como base o código de cultura da Ignição Digital, desta forma, é pretendida uma aplicação prática do mesmo no contexto de desenvolvimento de software.

Item 2.1

Preocupação com a qualidade do código durante todo processo de desenvolvimento, deixando claras as escolhas e os riscos.

Item 2.2

A qualidade tem precedência sobre a entrega.

Item 2.3

A qualidade só deve ser comprometida por razão da entrega que impactem a empresa ou os clientes

Item 3.2

Todo detalhe deve ser levado em consideração, do nome de uma variável a um espaçamento incorreto após a nomeação da função

Item 3.3

Todos são responsáveis pelo processo de qualidade [..]